#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
int a[1050][1050], n;

void cal(int x, int y, int n) {
	if (!n) a[x][y] = 1;
	else {
		cal(x + (1 << n - 1), y, n - 1);
		cal(x, y + (1 << n - 1), n - 1);
		cal(x + (1 << n - 1), y + (1 << n - 1), n - 1);
	}
}

int main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin >> n;
	cal(0, 0, n);
	for (int i = 0; i <1<<n; i++)
		for (int j = 0; j <1<<n ; j++)
		{
			if(j==(1<<n)-1)
				cout << a[i][j] << '\n';
			else
				cout << a[i][j] << ' ';
		}
	return 0;
}
//int peech(int x) {
//	if (x == 1)
//		return 1;
//	else
//		return (peech(x - 1) + 1) * 2;
//}
//
//int main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	int n;
//	cin >> n;
//	int r = peech(n);
//	cout << r << '\n';
//	return 0;
//}